﻿Imports ControleMatricula.Negocio

Public Class FrmRecebimentoPagamento

    Dim RowAluno As SPAlunoConsultarResult
    Dim RowRecebimentoPagamento As SPRecebimentoPagamentoConsultarResult
    Dim db As New DataClassesDataContext()

    Private Sub FrmRecebimentoPagamento_Load(sender As Object, e As System.EventArgs) Handles Me.Load

        MontarComboEspecifica(cmbEspecifica)
        cmbEspecifica.SelectedIndex = -1
        MontarComboPagamento(cmbPagamento)
        cmbPagamento.SelectedIndex = -1

    End Sub

    Private Sub btnConsultarAluno_Click(sender As System.Object, e As System.EventArgs) Handles btnConsultarAluno.Click

        Dim FrmAlunoConsultar As FrmAlunoConsultar
        FrmAlunoConsultar = New FrmAlunoConsultar
        FrmAlunoConsultar.Owner = Me
        FrmAlunoConsultar.ShowDialog()

        If Not IsNothing(FrmAlunoConsultar.RowAluno) Then

            RowAluno = Nothing

            RowAluno = FrmAlunoConsultar.RowAluno

            txtMatriculaAluno.Text = RowAluno.Matricula
            txtNomeAluno.Text = RowAluno.Nome

        End If

    End Sub

    Private Sub btnConsultarRecebimento_Click(sender As System.Object, e As System.EventArgs) Handles btnConsultarRecebimento.Click

        Dim IDAluno As Integer = 0
        Dim VLTotal As Decimal = 0

        If Not IsNothing(RowAluno) Then
            IDAluno = RowAluno.IDAluno
        End If

        Dim RetornoPagamentos As List(Of SPRecebimentoPagamentoConsultarResult)
        RetornoPagamentos = db.SPRecebimentoPagamentoConsultar(IDAluno, CDate(DTInicial.Text), CDate(DTFinal.Text), cmbEspecifica.SelectedValue, cmbPagamento.SelectedValue, IIf(chkRecebido.Checked, True, False)).ToList()

        If RetornoPagamentos.Count > 0 Then

            Dim DtPagamento As DataTable
            DtPagamento = New DataTable("SPRecebimentoPagamentoConsultar")

            DtPagamento.Columns.Add("Parcela")
            DtPagamento.Columns.Add("Matricula")
            DtPagamento.Columns.Add("Aluno")
            DtPagamento.Columns.Add("Pagamento")
            DtPagamento.Columns.Add("Valor")

            For x = 0 To RetornoPagamentos.Count - 1
                RowRecebimentoPagamento = RetornoPagamentos(x)

                Dim rowPagamento As DataRow = DtPagamento.NewRow()

                rowPagamento("Parcela") = RowRecebimentoPagamento.NRParcela
                rowPagamento("Matricula") = RowRecebimentoPagamento.Matricula
                rowPagamento("Aluno") = RowRecebimentoPagamento.Nome
                rowPagamento("Pagamento") = RowRecebimentoPagamento.DEPagamento
                rowPagamento("Valor") = RowRecebimentoPagamento.VLParcela

                VLTotal += RowRecebimentoPagamento.VLParcela

                lblVLTotal.Text = VLTotal

                DtPagamento.Rows.Add(rowPagamento)

            Next

            grvRecebPagamento.DataSource = DtPagamento

            If chkRecebido.Checked = True Then
                For Each dr In grvRecebPagamento.Rows
                    dr.Cells(0).Value = True
                Next
            End If

        Else
            MsgBox("Não foi encontrado nenhum registro!", MsgBoxStyle.Information)
            Exit Sub
        End If

    End Sub

    Private Sub txtMatriculaAluno_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles txtMatriculaAluno.Validating

        If txtMatriculaAluno.Text <> String.Empty Then

            Dim retorno As List(Of SPAlunoConsultarResult)
            retorno = db.SPAlunoConsultar(0, CInt(txtMatriculaAluno.Text), String.Empty, String.Empty, String.Empty, String.Empty, 0, "1", 0, 0).ToList()

            If retorno.Count > 0 Then
                RowAluno = Nothing

                RowAluno = retorno(0)

                txtMatriculaAluno.Text = RowAluno.Matricula
                txtNomeAluno.Text = RowAluno.Nome
            Else
                MsgBox("Matricula digitada inválida!", MsgBoxStyle.Information)
                Exit Sub
            End If

        Else

            RowAluno = Nothing
            txtMatriculaAluno.Text = String.Empty
            txtNomeAluno.Text = String.Empty

        End If

    End Sub

    Private Sub btnReceber_Click(sender As System.Object, e As System.EventArgs) Handles btnReceber.Click

        Dim dr As DataGridViewRow
        Dim QtdRecebidos As Integer = 0
        Dim QtdCancelamento As Integer = 0

        For Each dr In grvRecebPagamento.Rows

            If dr.Cells(0).Value = True AndAlso chkRecebido.Checked = False Then
                db.SPRecebimentoPagamentoReceber(CInt(dr.Cells(2).Value), CInt(dr.Cells(1).Value), True)
                QtdRecebidos += 1
            End If

            If dr.Cells(0).Value = False AndAlso chkRecebido.Checked = True Then
                db.SPRecebimentoPagamentoReceber(CInt(dr.Cells(2).Value), CInt(dr.Cells(1).Value), False)
                QtdCancelamento += 1
            End If

        Next

        If chkRecebido.Checked = False Then
            If QtdRecebidos = 0 Then
                MsgBox("Não foi selecionado nenhum pagamento para recebimento, favor selecionar pelo menos um!", MsgBoxStyle.Information)
                Exit Sub
            Else
                MsgBox("Recebimentos realizados com sucesso!", MsgBoxStyle.Information)
            End If
        Else
            If QtdCancelamento = 0 Then
                MsgBox("Não foi selecionado nenhum pagamento para cancelamento do recebimento, favor selecionar pelo menos um!", MsgBoxStyle.Information)
                Exit Sub
            Else
                MsgBox("Cancelamentos realizados com sucesso!", MsgBoxStyle.Information)
            End If
        End If
        btnConsultarRecebimento_Click(sender, e)

    End Sub
End Class